const _my = require("../__antmove/api/index.js")(my);
const wx = _my;

const hostname = '43.143.138.8';    // 线上地址
const port = 8001;
const baseUrl = 'http://' + hostname + ':' + port;

/**
 * 群聊中每条消息都要被保存下来
 * @param {*} req 
 */
function sendMessage(req) {
  console.log('向群聊发送消息');
  var data = {
    groupOrOwn: 0,
    content: req.content,
    contentType: 0,
    groupId: req.groupId, 
    userId: req.myName
  };

  console.log('发送数据内容: ', data);
  return new Promise((resolve,reject)=>{
    my.cloudCTX.callFunction({
      // name是要调用云函数的名称，想要调用云函数 hello 就写 hello，想调用123就写123，此处以 YUNKAIFA 为例。
      name: 'sendMessage',
      data: data,
      // 回调函数
      success:function(res){
        // 打印调用云函数hello获取的值
        console.log('res : ', res);
        resolve(res.result.data.data);
      },
      fail:function(res){
        console.log('fail_res : ', res);
      }
    });
  });

  // my.request({
  //   url: baseUrl + '/message/sendMessage',
  //   method: 'POST',
  //   data: {
  //     groupOrOwn: 0,
  //     content: req.content,
  //     contentType: 0,
  //     groupId: req.groupId, 
  //     userId: req.myName
  //   },
  //   headers: {
  //     'content-type': 'application/json', //默认值
  //   },
  //   dataType: 'json',
  //   success: function (res) {
  //     console.log('发送消息'+ req.search + "成功");
  //     // my.alert({ content: 'success' });
  //   },
  //   fail: function (error) {
  //     console.error('fail: ', JSON.stringify(error));
  //   },
  //   complete: function (res) {
  //     my.hideLoading();
  //     // my.alert({ content: 'complete' });
  //   },
  // });
};

function askForSummary(req) {

  var data = {
    groupId: req.groupId, 
    offset: 30
  };

  console.log('发送数据内容: ', data);
  return new Promise((resolve,reject)=>{
    my.cloudCTX.callFunction({
      // name是要调用云函数的名称，想要调用云函数 hello 就写 hello，想调用123就写123，此处以 YUNKAIFA 为例。
      name: 'botSummary',
      data: data,
      // 回调函数
      success:function(res){
        // 打印调用云函数hello获取的值
        console.log('res : ', res);
        resolve(res.result.data.data);
      },
      fail:function(res){
        console.log('fail_res : ', res);
      }
    });
  });

  // my.request({
  //   url: baseUrl + '/bot/summary',
  //   method: 'POST',
  //   data: {
  //     groupId: req.groupId, 
  //     offset: 30
  //   },
  //   headers: {
  //     'content-type': 'application/json', //默认值
  //   },
  //   dataType: 'json',
  //   success: function (res) {
  //     console.log('获取群历史总结消息成功');
  //     // my.alert({ content: 'success' });
  //   },
  //   fail: function (error) {
  //     console.error('fail: ', JSON.stringify(error));
  //   },
  //   complete: function (res) {
  //     my.hideLoading();
  //     // my.alert({ content: 'complete' });
  //   },
  // });
}

function askBot(req) {

  var data = {
    msg: req.msg,
    chatId: req.chatId,
    toUserId: req.toUserId,
    promptId: req.promptId
  };

  console.log('发送数据内容: ', data);
  return new Promise((resolve,reject)=>{
    my.cloudCTX.callFunction({
      // name是要调用云函数的名称，想要调用云函数 hello 就写 hello，想调用123就写123，此处以 YUNKAIFA 为例。
      name: 'askBot',
      data: data,
      // 回调函数
      success:function(res){
        // 打印调用云函数hello获取的值
        console.log('res : ', res);
        resolve(res.result.data.data);
      },
      fail:function(res){
        console.log('fail_res : ', res);
      }
    });
  });

  // my.request({
  //   url: baseUrl + '/bot/ask',
  //   method: 'POST',
  //   data: {
  //     msg: req.msg,
  //     chatId: req.chatId,
  //     toUserId: req.toUserId,
  //     promptId: req.promptId
  //   },
  //   headers: {
  //     'content-type': 'application/json', //默认值
  //   },
  //   dataType: 'json',
  //   success: function (res) {
  //     console.log('请求机器人成功');
  //     // my.alert({ content: 'success' });
  //   },
  //   fail: function (error) {
  //     console.error('fail: ', JSON.stringify(error));
  //   },
  //   complete: function (res) {
  //     my.hideLoading();
  //     // my.alert({ content: 'complete' });
  //   },
  // });
}

function addBot(req) {
  var data = {
    groupId: req.groupId, 
    userId: 'user_Bot'
  };
  return new Promise((resolve,reject)=>{
  my.cloudCTX.callFunction({
    // name是要调用云函数的名称，想要调用云函数 hello 就写 hello，想调用123就写123，此处以 YUNKAIFA 为例。
    name:"addBot",
    data: data,
    // 回调函数
    success:function(res){
      // 打印调用云函数hello获取的值
      console.log(res);
      // 修改 data 的值，由空变成 hello，Word
      resolve(res.result.data.data);
    }  
  });
});
  // my.request({
  //   url: baseUrl + '/bot/add',
  //   method: 'POST',
  //   data: {
  //     groupId: req.groupId, 
  //     userId: 'user_Bot'
  //   },
  //   headers: {
  //     'content-type': 'application/json', //默认值
  //   },
  //   dataType: 'json',
  //   success: function (res) {
  //     console.log( "添加机器人成功");
  //     // my.alert({ content: 'success' });
  //   },
  //   fail: function (error) {
  //     console.error('fail: ', JSON.stringify(error));
  //   },
  //   complete: function (res) {
  //     my.hideLoading();
  //     // my.alert({ content: 'complete' });
  //   },
  // });
}

function promptList() {
  return new Promise((resolve,reject)=>{
    my.cloudCTX.callFunction({
      // name是要调用云函数的名称，想要调用云函数 hello 就写 hello，想调用123就写123，此处以 YUNKAIFA 为例。
      name:"promptList",
      // 回调函数
      success:function(res){
        // 打印调用云函数hello获取的值
        console.log(res);
        console.log("list:" + res.result.data.data);
        // 修改 data 的值，由空变成 hello，Word
        // return res.result.data.data
        resolve(res.result.data.data);
      }  
    });
  });
  // return new Promise((resolve,reject)=>{
  //   my.request({
  //     url: baseUrl + '/ai_prompt/list',
  //     method: 'GET',
  //     data: {
  //     },
  //     headers: {
  //       'content-type': 'application/json', //默认值
  //     },
  //     dataType: 'json',
  //     success: function (res) {
  //       console.log("获取promptList成功", res.data.data);
  //       // [{id: '', description: ''}, {id: '', description: ''}]
  //       datas = res.data.data;
  //       resolve(res.data.data)
  //     },
  //     fail: function (error) {
  //       reject(error);
  //       console.error('fail: ', JSON.stringify(error));
  //     },
  //     complete: function (res) {
  //       my.hideLoading();
  //       // my.alert({ content: 'complete' });
  //     },
  //   }).then(function(e) {
  //     console.log("data", e.data);
  //     return 666;
  // });
// }); 
}

export {sendMessage, askForSummary, askBot, addBot, promptList}
